package ejb;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import org.apache.log4j.Logger;

import vo.ConfiguracionVO;
import entities.Configuracion;

@Stateless
public class AdministradorConfiguracionBean implements AdministradorConfiguracion{
	
	@PersistenceContext
	private EntityManager em;
	
	static Logger log = Logger.getLogger(AdministradorConfiguracionBean.class);
	
	public void actualizarConfiguracion(ConfiguracionVO cVO){
		Configuracion c = em.find(Configuracion.class, cVO.getId());
		c.setIp(cVO.getIp());
		c.setModulo(cVO.getModulo());
		c.setServicio(cVO.getServicio());
		c.setTipoComunicacion(cVO.getTipoComunicacion());
		c.setActivo(cVO.isActivo());
		em.persist(c);
		em.flush();
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Configuracion> obtenerConfiguraciones() {
		
		Query query = em.createQuery("SELECT c FROM Configuracion c");
	    return (List<Configuracion>) query.getResultList();
	}

	@Override
	public Configuracion obtenerConfiguracionSeleccionada(int id) {
		return em.find(Configuracion.class, id);
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Configuracion> obtenerConfiguracionesActivas(String modulo) {
		  Query query = em.createQuery(
			        "SELECT c FROM Configuracion c WHERE c.modulo = :modulo and c.activo = 1", Configuracion.class);
		return query.setParameter("modulo", modulo).getResultList();
	}
	
	
}
